﻿/**
 * Create in 2012-1-24.
 */
package kit4j.generator.keyless;

import java.util.Random;

/**
 * 可设置边界的随机Byte类型正整数数值的生成器。
 * 
 * @author MiniKnife
 * 
 */
public class RandomPositiveByteKeylessGenerator implements
		IKeylessGenerator<Byte> {

	/**
	 * 随机生成器。
	 */
	private Random rand;

	/**
	 * 生成的数值的边界。
	 */
	private int bound;

	/**
	 * 创建一个数值边界为Byte.MAX_VALUE新的随机正整数数值生成器。
	 */
	public RandomPositiveByteKeylessGenerator() {
		this(Byte.MAX_VALUE);
	}

	/**
	 * 创建一个指定数值边界的随机正整数数值生成器。
	 * 
	 * @param bound
	 *            数值边界
	 */
	public RandomPositiveByteKeylessGenerator(int bound) {
		rand = new Random(System.currentTimeMillis());

		this.bound = bound;
	}

	/**
	 * @see kit4j.generator.keyless.IKeylessGenerator#next()
	 */
	@Override
	public Byte next() {
		return (byte) Math.abs((byte) rand.nextInt(bound));
	}

	public int getBound() {
		return bound;
	}

	/**
	 * 设置随机数的数值边界。
	 * 
	 * @param bound
	 *            数值边界
	 */
	public void setBound(int bound) {
		this.bound = bound;
	}

}
